package com.shop.service;

import com.github.pagehelper.PageInfo;
import com.shop.entity.User;
import org.apache.ibatis.annotations.Param;

/**
 * @author XCH
 * @date 2025 - 05 - 19
 */
public interface UserService {
    /**
     * 查询所有用户
     * @param page
     * @param limit
     * @return
     */
    PageInfo<User> listUser(Integer page, Integer limit);

    /**
     * 用户登录
     * @param username
     * @param password
     * @return
     */
    User userLogin(String username, String password);

    /**
     * 添加用户
     * @param user 用户
     */
    void addUser(User user);

    /**
     * 删除用户
     * @param id 用户id
     */
    void deleteUser(Integer id);

    /**
     * 修改用户
     * @param user 用户
     */
    void updateUser(User user);

    void updateUserPassword(Integer id, String password);

    void updateUserPhone(Integer id, String phone);

    void updateImage(Integer id, String image);

    void updateNickname(Integer id, String nickname);

    void updateEmail(Integer id, String email);

    void updateSex(Integer id, String sex);

    void updateUsername(Integer id, String username);

    /**
     * 根据ID查询用户
     * @param id
     */
    User SelectByUserId (Integer id);

    /**
     * 根据邮箱查询用户
     */
    User selectByEmail(String email);
    /**
     * 查询用户数量
     * @return
     */
    int countUser();

    User selectByUsername(String username);
}
